
#include "TStack.h"
#include "iostream"

template<class C>TStack<C>::TStack()
{
  (*this).length=20;
  (*this).t=new C[length];
  (*this).ind=-1;
  std::cout<<"S-a apelat constructorul implicit ";
}

template <class C> TStack<C>::~TStack()
{
  delete t;
  std::cout<<"\nStiva distrusa ";
}

template <class C> TStack<C>::TStack(int length)
{
  (*this).length=length;
  (*this).t=new C[length];
  (*this).ind=-1;
}

template <class C> void TStack<C>::add(C element)
{
  if((*this).full())
    {
    }
  else
   {
    ++ind;
    t[ind]=element;
   }
}

template <class C> void TStack<C>::list()
{
   if((*this).empty())
    {
    }
    else
     {
      std::cout<<"\n Elementele stivei sunt ";
      for(int i=0;i<=(*this).ind; i++)
      std::cout<<"\n "<<t[i];
     }
}

template <class C> bool TStack<C>::empty()
{
  if((*this).ind==0)
   return true;
   else
    return false;
}

template <class C> bool TStack<C>::full()
{
  if((*this).ind==(*this).length)
   return true;
   else
    return false;
}

